CREATE TABLE ods_location_0200_pdi(
    tid string,
    alarm  string,
    status  string,
    longitude  string,
    latitude  string,
    originallng  string,
    originallat  string,
    height  string,
    speed  string,
    direction  string,
    gpsdate  string,
    mileage  string,
    receivedate  string,
    ispatch  string,
    oil  string,
    recorderspeed  string,
    starstatus  string,
    starnumber  string,
    signalstatus  string,
    iostatus  string,
    analogad0  string,
    analogad1  string,
    signalstrength  string,
    satellitenumber  string,
    isvalid  string,
    additionalarm  string,
    batterypower  string,
    electricvehicle  string,
    alarmfilter  string,
    standardmileage  string,
    standardfuelcon  string,
    ecudate  string,
    temperatureaddition_vehtype  string,
    temperatureaddition_tyreposition  string,
    temperatureaddition_tyrecondition  string,
    temperatureaddition_tyrepressure  string,
    temperatureaddition_tyretemperature  string,
    temperatureaddition_temalarmthreshold  string,
    temperatureaddition_tyrehalarmthreshold  string,
    temperatureaddition_tyrelalarmthreshold  string,
    temperatureaddition_tyrenomimalvalue  string,
    analysisdata_turningangle  string,
    analysisdata_lowoildrivingvalue  string,
    analysisdata_vehiclespeedfromecu  string,
    analysisdata_rpmwhenalarming  string,
    analysisdata_velocitychangevalue  string,
    analysisdata_currentgearshift  string,
    analysisdata_currentrpm  string,
    analysisdata_braketimes  string,
    analysisdata_clutchtimes  string,
    analysisdata_retardertimes  string,
    analysisdata_abstimes  string,
    analysisdata_reversetimes  string,
    analysisdata_deviceidentity  string,
    batteryinfo_motortemperature  string,
    batteryinfo_motorcontroltemp  string,
    batteryinfo_mcufaultcode  string,
    batteryinfo_bmsstatus  string,
    batteryinfo_batteryavetem  string,
    batteryinfo_batterycurrent  string,
    batteryinfo_totalbatteryv  string,
    batteryinfo_batteryfaultcode  string,
    batteryinfo_batterymaxtem  string,
    batteryinfo_batterymintem  string,
    batteryinfo_batteryminsoc  string,
    batteryinfo_maxchargingv  string,
    batteryinfo_maxcharginge  string,
    batteryinfo_totalstatus  string,
    batteryinfo_vehiclespeed  string,
    batteryinfo_shiftstatus  string,
    batteryinfo_vcufaultcode  string,
    batteryinfo_endurancemileage  string,
    batteryinfo_acceleratorpedal  string,
    batteryinfo_brakepedal  string,
    batteryinfo_modelinfo  string,
    batteryinfo_switchinfo  string,
    batteryinfo_electricattachment  string,
    batteryinfo_motorrpm  string,
    temalarmlist  string,
    alarmidentifylist  string,
    defenceadditionlist  string,
    parkingadditionlist  string,
    modulevoltageslist  string,
    staytimeparkingadditionlist  string,
    speedadditionlist  string,
    areaadditionlist  string,
    routeadditionlist  string,
    canclebreakdownaddition_breakdownlist  string,
    breakdownaddition_breakdownlist  string,
    statusaddition  string,
    create_time string,
    stayTime bigint,
    serialNumber int,
    lngtotalremaininggas int
)PARTITIONED BY (dt string, hr string, hashtid int)
STORED AS PARQUET
TBLPROPERTIES (
    'parquet.compression'='SNAPPY',
    'sink.partition-commit.trigger'='partition-time', --分区提交触发器的类型
    'sink.partition-commit.delay'='0 min',           --提交分区的延迟时间
    'partition.time-extractor.kind'='custom',        --抽取分区的方式BigDecimal
    'partition.time-extractor.class'='com.navinfo.platform.etl.flink.custom.HourPartTimeExtractor', --抽取分区的自定义class
    'sink.partition-commit.success-file.name'='_SUCCESS',               --重命名success文件的名称
    'sink.partition-commit.policy.kind'='metastore,success-file' --分区提交的策略
    --'sink.partition-commit.policy.kind'='metastore,success-file,custom', --分区提交的策略
    --'sink.partition-commit.policy.class'='com.navinfo.platform.etl.flink.custom.ParquetMergingCommitPolicy' --自定义的分区提交策略
    --'sink.rolling-policy.file-size'='128MB', +                //默认128M滚动生成文件，每次Parquet表通过大小、时间、checkpoint三个哪个先成立就滚动文件
    --'sink.rolling-policy.rollover-interval'='30 min', +       //默认30分钟滚动生成文件，Parquet表通过大小、时间、checkpoint三个哪个先成立就滚动文件
    --'sink.rolling-policy.check-interval'='1 min', +           //默认每1分钟检测，所有正在写入文件的创建时间是否超过rollover-interval的时长，如果是则滚动生成文件；
)